\hypertarget{class_robot_subsystem}{
\section{RobotSubsystem Class Reference}
\label{class_robot_subsystem}\index{RobotSubsystem@{RobotSubsystem}}
}


{\ttfamily \#include $<$RobotSubsystem.hpp$>$}

Inheritance diagram for RobotSubsystem:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{class_robot_subsystem}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_robot_subsystem_a1da520892f6bc3bec0a8bbbd974a9486}{RobotSubsystem} ()
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{class_robot_subsystem_abd1a0e1fbb223db8e9693bc6dda91635}{HandleInitialize} ()
\item 
virtual void \hyperlink{class_robot_subsystem_ae7faad5fdffc7c416801c628094d438c}{HandleEnable} ()
\item 
virtual void \hyperlink{class_robot_subsystem_a7066b5d072b9ff707aabad9c46fcdc55}{HandlePeriodic} ()
\item 
virtual void \hyperlink{class_robot_subsystem_aa25b1769d8fae130362f302f2961c716}{HandleContinuous} ()
\item 
virtual void \hyperlink{class_robot_subsystem_a705b10d18b7cbdc8578d343d7d5fd4a7}{HandleDisable} ()=0
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_robot_subsystem_af45e8a01b72511d7dc39a93fdbeada29}{
class \hyperlink{class_robot_subsystem_af45e8a01b72511d7dc39a93fdbeada29}{SystematicRobot}}
\label{class_robot_subsystem_af45e8a01b72511d7dc39a93fdbeada29}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The \hyperlink{class_robot_subsystem}{RobotSubsystem} class controls a subsystem of the robot.

To use it, create subclasses that override the Init, Periodic, Continuous, and Disable functions. Then, create functions that control the subsystem that to be called by controllers.

Every subsystem must be added to the \hyperlink{class_systematic_robot}{SystematicRobot}, which will call the functions at the correct times.

Subsystems are enabled whenever the robot is enabled.

Testing shows this class works. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_robot_subsystem_a1da520892f6bc3bec0a8bbbd974a9486}{
\index{RobotSubsystem@{RobotSubsystem}!RobotSubsystem@{RobotSubsystem}}
\index{RobotSubsystem@{RobotSubsystem}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{RobotSubsystem}]{\setlength{\rightskip}{0pt plus 5cm}RobotSubsystem::RobotSubsystem (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_robot_subsystem_a1da520892f6bc3bec0a8bbbd974a9486}
Constructor for \hyperlink{class_robot_subsystem}{RobotSubsystem}. 

\subsection{Member Function Documentation}
\hypertarget{class_robot_subsystem_aa25b1769d8fae130362f302f2961c716}{
\index{RobotSubsystem@{RobotSubsystem}!HandleContinuous@{HandleContinuous}}
\index{HandleContinuous@{HandleContinuous}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{HandleContinuous}]{\setlength{\rightskip}{0pt plus 5cm}void RobotSubsystem::HandleContinuous (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{class_robot_subsystem_aa25b1769d8fae130362f302f2961c716}
This function should be overridden to handle periodic subsystem tasks. It will be called periodically whenever the robot is enabled. \hypertarget{class_robot_subsystem_a705b10d18b7cbdc8578d343d7d5fd4a7}{
\index{RobotSubsystem@{RobotSubsystem}!HandleDisable@{HandleDisable}}
\index{HandleDisable@{HandleDisable}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{HandleDisable}]{\setlength{\rightskip}{0pt plus 5cm}virtual void RobotSubsystem::HandleDisable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, pure virtual\mbox{]}}}}
\label{class_robot_subsystem_a705b10d18b7cbdc8578d343d7d5fd4a7}
This function must be overridden to disable this subsystem. It must be safe to call this function when already disabled. \hypertarget{class_robot_subsystem_ae7faad5fdffc7c416801c628094d438c}{
\index{RobotSubsystem@{RobotSubsystem}!HandleEnable@{HandleEnable}}
\index{HandleEnable@{HandleEnable}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{HandleEnable}]{\setlength{\rightskip}{0pt plus 5cm}void RobotSubsystem::HandleEnable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{class_robot_subsystem_ae7faad5fdffc7c416801c628094d438c}
This function should be overridden to enable the subsystem. It will be called when the robot becomes enabled. \hypertarget{class_robot_subsystem_abd1a0e1fbb223db8e9693bc6dda91635}{
\index{RobotSubsystem@{RobotSubsystem}!HandleInitialize@{HandleInitialize}}
\index{HandleInitialize@{HandleInitialize}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{HandleInitialize}]{\setlength{\rightskip}{0pt plus 5cm}void RobotSubsystem::HandleInitialize (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{class_robot_subsystem_abd1a0e1fbb223db8e9693bc6dda91635}
This function should be overriden to run one-\/time setup tasks. \hypertarget{class_robot_subsystem_a7066b5d072b9ff707aabad9c46fcdc55}{
\index{RobotSubsystem@{RobotSubsystem}!HandlePeriodic@{HandlePeriodic}}
\index{HandlePeriodic@{HandlePeriodic}!RobotSubsystem@{RobotSubsystem}}
\subsubsection[{HandlePeriodic}]{\setlength{\rightskip}{0pt plus 5cm}void RobotSubsystem::HandlePeriodic (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{class_robot_subsystem_a7066b5d072b9ff707aabad9c46fcdc55}
This function should be overridden to handle periodic subsystem tasks. It will be called periodically whenever the robot is enabled. 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
C:/Documents and Settings/Sam/My Documents/My Projects/Entech-\/Fpk/Entech-\/Fpk/RobotSubsystem.hpp\item 
C:/Documents and Settings/Sam/My Documents/My Projects/Entech-\/Fpk/Entech-\/Fpk/RobotSubsystem.cpp\end{DoxyCompactItemize}
